package rand_abc

import (
	"errors"
	"math/rand"
	"sort"
	"strings"
)

func Abc(n int) (req_letter string, err error) { //定义随机字母字符串生成器
	if n < 0 {
		return "", errors.New("字符串最大长度小于3") //如果输入的n数值太小，字符串长度会小于3，届时会报错，而且没有这个err的话，rand.Intn()会panic，为防止panic，这里就不defer了
	}

	letter_len := rand.Intn(n) + 3

	var b strings.Builder

	for i := 0; i < letter_len; i++ {
		b.WriteRune(rand.Int31n(26) + 97)
	}
	req_letter = b.String()
	return req_letter, nil
}

func Stletter(s string) string { //定义排序函数
	s_sli := make([]byte, 0, len(s)) //准备参数，字符串转成切片后排序
	for i := 0; i < len(s); i++ {
		s_sli = append(s_sli, s[i])
	}
	sort.Slice(s_sli, func(i, j int) bool {
		return s_sli[i] > s_sli[j]
	})
	var b strings.Builder
	b.Write(s_sli)    //拼接字节切片为字符串
	return b.String() //生成字符串并返回
}
